using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using EYDIngenieria.ERP.Aplicacion.Gestion;
using EYDIngenieria.ERP.Aplicacion.Mantenedores;
using EYDIngenieria.ERP.ObjetosDeNegocio.Dominio;

public partial class Gestion_OT_AsignacionDespachoSinOrden : System.Web.UI.Page
{
    private readonly GestionOrdenDeTrabajoAuxiliar gestionOrdenDeTrabajoAuxiliar = new GestionOrdenDeTrabajoAuxiliar();
    private readonly MantenedorEstadoOrdenDeTrabajo mantenedorEstadoOrdenesDeTrabajo = new MantenedorEstadoOrdenDeTrabajo();
    private readonly GestionOrdenDeTrabajo gestionOrdenDeTrabajo = new GestionOrdenDeTrabajo();
    private EstadoOrdenDeTrabajo ingresado;
    private OrdenDeTrabajoAuxiliar ot;
    private ListItem li;
    private readonly GestionInventario gestionInventario = new GestionInventario();
    private readonly EstadoOrdenDeTrabajo estadoIngresado;
    private readonly EstadoOrdenDeTrabajo estadoDespachado;
    private readonly EstadoOrdenDeTrabajo estadoAprobado;

    public Gestion_OT_AsignacionDespachoSinOrden()
    {
        estadoDespachado = mantenedorEstadoOrdenesDeTrabajo.Buscar("D")[0];
        estadoIngresado = mantenedorEstadoOrdenesDeTrabajo.Buscar("I")[0];
        estadoAprobado = mantenedorEstadoOrdenesDeTrabajo.Buscar("A")[0];
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if(!IsPostBack)
        {
            PoblarListadoDeOrdenes();
        }
    }
    private void PoblarListadoDeOrdenes()
    {
        //lbxDespachos.Items.Clear();
        ddlOrdenesDeTrabajo.Items.Clear();

        OrdenDeTrabajoAuxiliar[] ordenesAuxiliares = gestionOrdenDeTrabajoAuxiliar.Listar(estadoIngresado);
        GridView1.DataSource = ordenesAuxiliares;
        GridView1.DataBind();
        //foreach (OrdenDeTrabajoAuxiliar auxiliar in ordenesAuxiliares)
        //{
        //    li = new ListItem(auxiliar.Fecha.ToString("dd-MM-yyyy") + " - " + auxiliar.Descripcion, auxiliar.Id.ToString());
        //    lbxDespachos.Items.Add(li);
        //}

       
        OrdenDeTrabajo[] ordenes = gestionOrdenDeTrabajo.Listar(estadoAprobado);
        foreach (OrdenDeTrabajo orden in ordenes)
        {
            li = new ListItem(orden.NumeroOrdenDeTrabajo.ToString() + " - " + orden.Cliente.RazonSocial, orden.NumeroOrdenDeTrabajo.ToString());
            ddlOrdenesDeTrabajo.Items.Add(li);
        }
        li = new ListItem("Seleccione","0");
        ddlOrdenesDeTrabajo.Items.Insert(0,li);
    }

    //protected void lbxDespachos_SelectedIndexChanged(object sender, EventArgs e)
    //{
    //    OrdenDeTrabajoAuxiliar otAux = gestionOrdenDeTrabajoAuxiliar.Obtener(int.Parse(lbxDespachos.SelectedValue.ToString()));
    //    txbDescripcion.Text = otAux.Descripcion;

    //    gdvDetalle.DataSource = otAux.Detalle;
    //    gdvDetalle.DataBind();
    //}
    protected void btnFinalizar_Click(object sender, EventArgs e)
    {
        if (ddlOrdenesDeTrabajo.SelectedValue.Equals("0")) 
        {
            
        }

        else
        {
            OrdenDeTrabajo ot = gestionOrdenDeTrabajo.Bucar(int.Parse(ddlOrdenesDeTrabajo.SelectedValue.ToString()))[0];
            //OrdenDeTrabajoAuxiliar otAux = gestionOrdenDeTrabajoAuxiliar.Obtener(int.Parse(lbxDespachos.SelectedValue.ToString()));
            OrdenDeTrabajoAuxiliar otAux = gestionOrdenDeTrabajoAuxiliar.Obtener(int.Parse(GridView1.SelectedValue.ToString()));
            otAux.Estado = estadoDespachado;
            otAux.OrdenDeTrabajo = ot;
            ot.OrdenesDeTrabajoAuxiliar.Add(otAux);
            gestionOrdenDeTrabajo.Modificar(ot);

            gestionOrdenDeTrabajoAuxiliar.Modificar(otAux);
            
        }
        lblDescripcion.Text = string.Empty;
        gdvDetalle.DataSource = null;
        gdvDetalle.DataBind();
        PoblarListadoDeOrdenes();
    }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        OrdenDeTrabajoAuxiliar otAux = gestionOrdenDeTrabajoAuxiliar.Obtener(int.Parse(GridView1.SelectedValue.ToString()));
        lblDescripcion.Text = otAux.Descripcion;

        gdvDetalle.DataSource = otAux.Detalle;
        gdvDetalle.DataBind();
    }
}
